var $dataInfo = $('#callCenterTable');

//防止表头与表格不对齐
$(window).resize(function () {
    $dataInfo.bootstrapTable('resetView');
});


$(function () {
    // 初始化下拉菜单
    /*$('.filter-content select').selectpicker({
        noneSelectedText: '请选择',
        sanitize: true,
        size: 10
    });*/
    // 初始化日期选择控件
    $('.date-input').datepicker({
        language: "zh-CN",
        autoclose: true,
        clearBtn: true,
        todayHighlight: true,
        format: "yyyy-mm-dd"
    });

    dataInfoInit();

});

/**
 * 呼叫中心列表
 */
function dataInfoInit() {
    //先销毁表格
    $dataInfo.bootstrapTable('destroy');
    $dataInfo.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/callForm/selectCallFormList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'formId',
        idField: 'formId',
        pageSize: globalPageSize,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: globalPageList,//可供选择的每页的行数
        fixedColumns: true,     // 冻结列
        fixedNumber: 4,         // 左侧固定列
        // fixedRightNumber: 1,    // 右侧固定列

        queryParams: queryParams,//查询参数
        columns: [
            {title: '主键', field: 'formId', visible: false},
            {title: '联系人id', field: 'contactPersonId', visible: false},
            {title: '客户id', field: 'customerId', visible: false},
            {title: '序号', field: 'index', align: 'center', valign: 'middle', width: '60', formatter: indexFormat},
            {title: '联系人', field: 'contactPersonName', align: 'left', valign: 'middle',formatter:contactNameFormat},
            {title: '联系电话', field: 'contactPhone', align: 'left', valign: 'middle',formatter:contactPhoneFormat},
            {title: '所属客户', field: 'customerName', align: 'left', valign: 'middle',formatter: customerNameFormat},
            {title: '通话时长(秒)', field: 'callDuration', align: 'left', valign: 'middle'},
            {title: '创建时间', field: 'createTm', align: 'left', valign: 'middle', formatter: dateFormat},
            {title: '操作', field: 'operate', align: 'right', events: operateEvents, formatter: genderOpt}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

/**
 * --列表序列号
 */
function indexFormat(value, row, index) {
    return index + 1;
}

/**
 * 点击联系人名称详情页面
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function contactPersonFormat(value, row, index) {
    return '<a style="color:#ff0000;cursor:pointer;text-decoration:underline;" target="_blank"  onclick=\'opportunityDetail(\"' + row.opportunityId + '")\'>' + value + '</a>';
}



/**
 * 自定义操作列内容
 */
function genderOpt(value, row, index) {
    return [
        '<button type="button" class="btn btn-default" id="detail"><i class="mdi mdi-eye"></i>详情</button>',
        '<button type="button" class="btn btn-default" id="sign"><i class="mdi mdi-marker"></i>标记</button>',
        '<button type="button" class="btn btn-default" id="screen"><i class="mdi mdi-filter-outline"></i>筛选</button>',
        // '<button type="button" class="btn btn-default" id="editContact"><i class="mdi mdi-pencil"></i>修改联系人</button>',

        // '<a type="button" id="detail" class="btn btn-xs btn-default m-r-5 show-btn" title="详情" data-toggle="tooltip"><i class="mdi mdi-eye"></i>详情</a>',
        // '<a type="button" id="sign" class="btn btn-xs btn-default m-r-5 show-btn" title="标记" data-toggle="tooltip"><i class="mdi mdi-pencil"></i>标记</a>',
        // '<a type="button" id="screen" class="btn btn-xs btn-default m-r-5 show-btn" title="筛选" data-toggle="tooltip"><i class="mdi mdi-eye"></i>筛选</a>'
        // '<a type="button" id="editContact" class="btn btn-xs btn-default m-r-5 show-btn" title="修改联系人" data-toggle="tooltip"><i class="mdi mdi-pencil"></i>修改联系人</a>'
    ].join('');
}



window.operateEvents = {
    //查看点击事件
    'click #detail': function (e, value, row, index) {
        dateType = $("#dateType").val();  //今天 本月 本周
        parent.$(parent.document).data('multitabs').create({
            iframe: true,
            title: '呼叫中心详情',
            url: "/front/callCenter/callCenterDetails?bs=1&formId=" + row.formId+"&contactId=" + row.contactPersonId + "&dateType=" +dateType
        }, true);
    },
    'click #sign': function (e, value, row, index) {
        sign(row.formId);
    },
    'click #editContact': function (e, value, row, index) {
        editContact(row);
    }
};

/**
 * 编辑联系人-弹窗
 * @param formId
 */
function editContact(row) {
    $('#updateContact').modal('show');
    $("#editContactFormId").val(row.formId);
    if (row.contactPersonName){
        $("#callContact").val(row.contactPersonName);
    }
}


/**
 * 更新联系人-提交
 */
function updateContactSubmit() {
    var formId = $('#editContactFormId').val();
    var contactPersonName = $('#callContact').val();//联系人
    var jsonData = {
        formId: formId,
        contactPersonName: contactPersonName
    };

    $.ajax({
        url: '/callForm/updateContact',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(jsonData),
        success: (function (data) {
            if (data.code == "000000") {
                $('#updateContact').modal('hide');
                $dataInfo.bootstrapTable('refresh');
                $.alert("修改成功");
            } else {
                $.alert("操作失败");
            }
        }),
        error: (function () {
            $.alert("失败");
        })
    });

}


/**
 * 标记-弹窗
 * @param formId
 */
function sign(formId) {
    $.ajax({
        url: '/callForm/selectCallFormByFormId',
        type: 'POST',
        dataType: "json",
        data: {
            formId: formId,
        },
        success: (function (data) {
            $('#signModal').modal('show');
            if (data.code == "000000") {
                $("#formId").val(data.data.formId);
                $("#isInterested").val(data.data.isInterested);
                $("#isWordArt").val(data.data.isWordArt);
                $("#isSpiteCall").val(data.data.isSpiteCall);
                $("#isComplaintsCall").val(data.data.isComplaintsCall);
                $("#isGoodCall").val(data.data.isGoodCall);
                $("#isWarnCall").val(data.data.isWarnCall);
            } else {
                alert("请求失败");
            }
        }),
        error: (function (res) {
            alert("请求失败");
        })
    })
}

/**
 * 更新标记-提交
 */
function updateSign() {
    var formId = $('#formId').val();
    var isInterested = $('#isInterested').val();//意向电话
    var isWordArt = $('#isWordArt').val();//话术
    var isSpiteCall = $('#isSpiteCall').val();//恶意回复电话
    var isComplaintsCall = $('#isComplaintsCall').val();//投诉电话
    var isGoodCall = $('#isGoodCall').val();//优秀通话
    var isWarnCall = $('#isWarnCall').val();//警告通话
    var jsonData = {
        formId: formId,
        isInterested: isInterested,
        isWordArt: isWordArt,
        isSpiteCall: isSpiteCall,
        isComplaintsCall: isComplaintsCall,
        isGoodCall: isGoodCall,
        isWarnCall: isWarnCall
    };

    $.ajax({
        url: '/callForm/callMarkup',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(jsonData),
        success: (function (data) {
            if (data.code == "000000") {
                $('#signModal').modal('hide');
                $dataInfo.bootstrapTable('refresh');
                $.alert("标记成功");
            } else {
                $.alert("操作失败");
            }
        }),
        error: (function () {
            $.alert("失败");
        })
    });

}


/**
 * 点击客户姓名跳转客户详情页面
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function customerNameFormat(value, row, index) {
    if (row.customerId == null || row.customerId == ''){
      return;
    }
    return '<a href="#!" style="text-decoration: underline;" onclick=\'customerDetail(\"' + row.customerId + '")\'>' + value + '</a>';
}

function customerDetail(customerId) {
    parent.$(parent.document).data('multitabs').create({
        iframe: true,
        title: '客户详情',
        url: "/front/user/customerManager/customerDetail?customerId=" + customerId
    }, true);
}

/**
 * 点击联系人姓名跳转联系人详情页面
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function contactNameFormat(value, row, index) {
    if(row.contactPersonId == '' || row.contactPersonId == null){
        if (row.contactPersonName){
            return value;
        }
        return;
    }
    return '<a style="cursor:pointer;text-decoration:underline;" target="_blank"  onclick=\'contactDetail(\"' + row.contactPersonId + '")\'>' + value + '</a>';
}

function contactDetail(contactId) {
    parent.$(parent.document).data('multitabs').create({
        iframe: true,
        title: '联系人详情',
        url: "/front/contactManager/contactDetail?contactId=" + contactId
    }, true);
}

function contactPhoneFormat(value){

    return transTelNumber(value)
}


/**
 * 普通查询参数
 */
function queryParams(params) {
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort; //排序列名
    params.sortOrder = params.order;//排序方式
    //普通搜索条件
    params.dateType = $("#dateType").val();  //今天 本月 本周 全部
    params.contactPersonName = $.trim($('#contactName').val());  //联系人
    params.bs = '1';  //0管理端 1用户端
    return params;
}

/**
 * 高级查询参数
 * @param params
 * @returns {*}
 */
function advancedQueryParams(params) {
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort; //排序列名
    params.sortOrder = params.order;//排序方式
    //普通搜索条件
    params.dateType = $("#dateType").val();  //全部 本月 本周 全部
    params.createStart = $("#createTmStart").val();  //开始时间
    params.createEnd = $("#createTmEnd").val();  //结束时间
    params.customerName = $.trim($('#customerName').val());  //客户名称
    params.callShortestTime = $("#callShortestTime").val();  //最短时长
    params.callLongestTime = $("#callLongestTime").val();  //最长时长
    params.bs = '1';  //0管理端 1用户端
    return params;
}


/**


/**
 * 时间转换
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function dateFormat(value, row, index) {
    if (value != null) {
        var date = new Date(value);
        var month = date.getMonth() + 1;
        var tian = date.getDate();
        var hour = date.getHours();
        var minute = date.getMinutes();
        var seconds = date.getSeconds();
        if (month >= 1 && month <= 9) {
            month = "0" + month;
        }
        if (tian >= 1 && tian <= 9) {
            tian = "0" + tian;
        }
        if (hour >= 1 && hour <= 9) {
            hour = "0" + hour;
        }
        if (minute >= 1 && minute <= 9) {
            minute = "0" + minute;
        }
        if (seconds >= 1 && seconds <= 9) {
            seconds = "0" + seconds;
        }

        return date.getFullYear() + '-' + month + '-' + tian + ' ' +hour+':'+minute+':'+seconds;
    }
}

function searchCallCenterList(type) {
    if (type == 1) {
        $dataInfo.bootstrapTable('refreshOptions', {pageNumber: 1, queryParams: queryParams});
    } else {
        $dataInfo.bootstrapTable('refreshOptions', {pageNumber: 1, queryParams: advancedQueryParams});
    }

}


/**
 * 今天/周/月切换
 * @param time
 */
function selectTime(time) {
    if (time == 'today') {//今天
        $('.today').addClass('active-second');
        $('.week').removeClass('active-second');
        $('.month').removeClass('active-second');
        $('.all').removeClass('active-second');
        $("#dateType").val("today");
    }
    if (time == 'month') {//本月
        $('.month').addClass('active-second');
        $('.today').removeClass('active-second');
        $('.week').removeClass('active-second');
        $('.all').removeClass('active-second');
        $("#dateType").val("month");
    }
    if (time == 'week') {//本周
        $('.week').addClass('active-second');
        $('.today').removeClass('active-second');
        $('.month').removeClass('active-second');
        $('.all').removeClass('active-second');
        $("#dateType").val("week");
    }
    if (time == 'all') {//全部
        $('.all').addClass('active-second');
        $('.week').removeClass('active-second');
        $('.today').removeClass('active-second');
        $('.month').removeClass('active-second');
        $("#dateType").val("all");
    }
    // $('#createTm').val('');//清空创建时间搜索条件
    $dataInfo.bootstrapTable('refreshOptions', {pageNumber: 1});
}

//切换tab页的时候清空所有数据
function clearAllData() {
    //今天 本月 本周
    // $('.today').addClass('active-second');
    // $('.week').removeClass('active-second');
    // $('.month').removeClass('active-second');

    //起止时间
    $('#createTmStart').val('');
    $('#createTmEnd').val('');
    $('#customerName').val('');
    $('#callShortestTime').val('');
    $('#callLongestTime').val('');
}

function promptInfo(content) {
    $.alert({
        title: '温馨提示',
        content: content,
        buttons: {
            confirm: {
                text: '确认',
                btnClass: 'btn-primary'
            }
        }
    });
}

function resetSearch(_this) {
    let searchForm = '';
    if ($(_this).parents('#filterContent').context == document) {
        searchForm = $(_this);
    } else {
        searchForm = $(_this).parents('#filterContent');
    }
    searchForm.find('input[type="text"]').val('');
    searchForm.find('select').find('option:first').prop('selected', 'selected');
    searchForm.find('select').selectpicker('refresh');
    if ($(_this).parents('#filterContent').context !== document) {
        dataInfoInit();
    }
}

